package com.abc.deviceservice.deviceinfo;

//获取终端设备信息，用于获取设备序列号、用户定义的设备序列号等。
public interface IDeviceInfo {

    /**
     * 打开模块
     * @param moduleType 模块类型 1表示指纹模块 2表示读卡器模块 3表示密码键盘模块 4表示签名 5表示语音
     * @return 成功为 0，其他为失败
     */
    int openModule(int moduleType);

    /**
     * 关闭模块
     * @param moduleType 模块类型 1表示指纹模块 2表示读卡器模块 3表示密码键盘模块 4表示签名 5表示语音
     */
    void closeModule(int moduleType);

    /**
     * 获得设备序列号
     * @return 使用身份证读取模块中公安部下发的统一编号
     */
    String getSN();

    /**
     * 获得厂商ID
     * @param flag 暂时保留，目前不起作用，在实现接口时可不作处理
     * @return
     */
    String getVID(boolean flag);

    //获得厂商 Name
    String getVName();

    //获取终端固件版本
    String getFirmwareVersion();

    //获取终端型号
    String getDeviceModel();

    /**
     * 获取模块状态
     * @param moduleType 模块类型 1表示指纹模块 2表示读卡器模块 3表示密码键盘模块 4表示签名 5表示语音
     * @return 终端已打开返回 true，未打开返回 false
     */
    boolean getModuleState(int moduleType);

    //取消操作
    void cancelOperation();
}
